<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
  <title>Ghidra Tables</title>
                              
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">                 
  <link rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
</head>
  <body lang="EN-US">
  
  	<h1><a name="GhidraTableHeaders"></a>Ghidra Tables</h1>                        
	<blockquote>
		<p>
		Most table headers in Ghidra support some or all of the following features:
		<ol>
			<li><a href="#SortingColumns">the ability to sort one or more columns</a>, </li>
			<li><a href="#SelectColumns">the ability to hide columns</a>,  </li>
			<li><a href="#SelectColumns">the ability to add additional columns</a>, and </li>
			<li><a href="#ColumnSettings">the ability to change appearance settings for some columns</a>.</li>
		</ol>
		</p>
		<p>
		If you are using a table that does not offer one of the above features, and you would like
		us to add that feature, then please contact the Ghidra team to request additional support.
		</p>
		
		<blockquote>
		<p>
		<img src="help/shared/note.png" border="0">In addition to table header actions, many 
		tables support a common set of actions when right-clicking in the body of the table, such
		as: 
		
		<ol>
			<li><a href="#Copy">Copy (also available via <b>Ctrl-C</b></a>, and </li>
			<li><a href="#ExportCSV">the ability to export a table to a comma-separated value (CSV) file</a>.</li>
			<li><a href="#SelectAll">Select All (also available via <b>Ctrl-A</b></a>.</li>
		</ol>
		</p>
		</blockquote>
		
	</blockquote>    
	
	<h2><a name="SortingColumns"></a>Sorting Columns</h2>
	
	<blockquote>
		<p>
			Sorting a table on a particular column is as easy as left-clicking that column.  A 
			sorted column is denoted by an icon that shows the sort direction.
		</p>
			
		<blockquote>
			<p><img border="0" src="help/shared/note.yellow.png" alt="">
			  If you click a table column header and no sorting takes place, then that particular
			  table does not support sorting on columns.
			 </p>
		</blockquote>
			
		<p>
			When you click a column to sort the data, the default sort will be ascending.  If you 
			click the column while it is already sorted, then the sort direction will be changed
			and the table resorted.
		</p>
		<p>
			To sort on multiple columns, press the <b>Control</b> key while left-clicking a table
			column header.  This will cause the clicked column to become the next sort column.  As
			an example, suppose you are sorted on <i>column one</i>, and then add a secondary 
			sort to <i>column two</i>, then the
			data will be sorted first on <i>column one</i>, and then, when equal values are found for 
			that column, a secondary sort will take place on <i>column two</i>.  You may sort on as many
			columns as you wish.  When a multiple column sort is in effect, a number will appear
			next to each column's sort direction icon, which indicates that column's order in the
			sorting process. 		Below is a picture of the <b>Functions</b> table sorted on 
			multiple columns:
			<br><br>
			<center>  
				<img border="0" src="images/MultipleColumnSortDialog.png">
		   	</center> 
		</p>
		<p>
			With multiple sorted columns, you may change the direction of any individual 
			sort column by left-clicking that column.  
			<blockquote>
			<p><img border="0" src="help/shared/tip.png" alt="">
			  To remove a sort column from a multiple column sort, Ctrl-left-click that column.
			  This will even work when only one column is sorted, <b><i>thus effectively disabling 
			  sorting for the table</i></b>.   <u>Disabling sorting can greatly increase the
			  table's performance when the number of rows is large</u>
	    	</p>
	    	</blockquote>
			
		</p>
	
		<blockquote>
		<p><img border="0" src="help/shared/note.png" alt="">
			  It is possible to cancel some tables while they are loading or sorting their data.
			  If this happens, you can trigger a reload of the data by sorting on one of the 
			  columns.
	    </p>
	    </blockquote>
	</blockquote>
	<br>
	<br>
	
	<h2><a name="SelectColumns"></a>Choosing Columns</h2>
	
	<blockquote>
	<center>  
		<img border="0" src="images/SelectColumnsDialog.png">
   	</center>
   	<p>
   		The <b>Select Columns</b> dialog allows you to change the columns visible for a given 
   		table.  The dialog shows a table of columns that are available.  At the very least, you 
   		may turn off columns that you do not wish to see.  Additionally, the table you are using
   		may support discoverable column types.  If this is the case, they you will see 
   		additional columns appear in the table.  Discovered columns will be marked as 
   		<b>Non-default</b> in the <b>Is Default?</b> table column.
   	</p>
   	
	</blockquote>
	
	<h2><a name="ColumnSettings"></a>Column Settings</h2>
  
  	<blockquote>
  	<p>
  		Some columns allow you to alter the settings of the column, which will change how the
  		column displays its data.  As an example, consider the <b>Bytes Settings</b> dialog below:
  	</p>
  	<br>
	<center>  
		<img border="0" src="images/BytesSettingsDialog.png">
   	</center>
   	<p>
   		This dialog allows you to change various features of the bytes column, such as endianness
   		and the number of bytes that appear in the display.
   	</p>
   	
	</blockquote>
  
  
  	<h2><a name="Copy"></a>Copy</h2>

	<blockquote>
  	<p>
		This action will copy the contents of the <b>selected rows</b> into the system clipboard
		in a space-separated format.  This data will <b>not</b> include the column names.
		
  	</p>
	</blockquote>
  
  	
  	
  	<h2><a name="Copy_Current_Column"></a>Copy Current Column</h2>

	<blockquote>
  	<p>
		This action will copy only the contents of the cell in the current column of the current
		row.  To use this action, you must first click the cell you wish to copy in order to 
		make that cell's column the selected column.
  	</p>
	</blockquote>
  
  
  
  	<h2><a name="Copy_Columns"></a>Copy Columns...</h2>

	<blockquote>
  	<p>
		This action works the same as the copy action with the added ability to restrict the
		columns that are copied.
  	</p>
	</blockquote>
  
	<h2><a name="ExportCSV"></a>Export to CSV Text File</h2>

	<blockquote>
  	<p>
		Exports the current table to a comma-separated value (CSV) text file. The CSV file 
		will export the selected columns in the order displayed.  The first row of ouput will
		contain the table's column names.
		
		<blockquote>
		<p>
		<img src="help/shared/note.yellow.png" border="0">This action uses the current
		table selection when deciding what to export.  If no row is selected, then  no data is 
		exported.  To select all rows, use the <b>Select All</b> action or press <b>Ctrl-A</b> on
		the keyboard.
		</p>	
		</blockquote>
		
  	</p>
	</blockquote>
	
	<h2><a name="ExportCSV_Columns"></a>Export to CSV Text File by Columns...</h2>

	<blockquote>
  	<p>
		This action is the same as the <b>Export to CSV Text File</b> action but adds the 
		additional ability to pick which columns get exported.
  	</p>
	</blockquote>
	
	<h2><a name="SelectAll"></a>Select All</h2>

	<blockquote>
  	<p>
		This action will select all rows in the table.
  	</p>
	</blockquote>

  <!-- extra space at the bottom of the page (for readability) -->
  <br>
  <br>
  <br>
  <br>
  
      <P class="relatedtopic">Related Topics</P>

    <UL>
      <LI><A href="help/topics/Trees/GhidraTreeFilter.html">Table Filtering</A></LI>
    </UL>
  
  </body>
</html>
